home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
telecomm
/
storm100.lzh
/
STRT_1.BAS
< prev
next >
Wrap
BASIC Source File
|
1993-11-04
|
3KB
|
119 lines
' STRT_1.BAS GRMEYER v1.1 10/30/93
' Automates logging onto GEnie's ST RT BB, Library, RTC, or email
' If this is accidently invoked while online it will MOVE to the destination
' REQUIRES:
' - Dialing entry of "GEnie" with correct phone number. Note that settings
' and autologon for this entry are ignored, they're handled by script.
' - ASCII file named GENIE.PWD in Storm directory. Contains ACCOUNT & PASSWD
' each on own line terminated with a carriage return
'
' == Initialzation ==
READ n
DIM p$(n),c$(n)
FOR x = 1 to n
READ p$(x),c$(x)
NEXT x
'
IF CARRIER THEN
title$=" Move to... "
ELSE
title$=" Logon to... "
ENDIF
' == Mainline ==
dest = POPUP (1,title$,p$(1),p$(2),p$(3),p$(4),p$(5))
'
IF dest = 5 THEN GOTO EXIT:' 'cancel' was the selection
IF CARRIER THEN
SEND c$(dest)
ELSE
gosub logon
ENDIF
GOTO EXIT
'
' == Finalization ==
EXIT:
END
'
' == logon subroutine ==
logon:
' this routine searches the dialing dir for entry "GEnie", gets the
' phone number, then handles the dialing, connecting, and logging on
' we'll jump straight to exit if an error is detected
'
entry$="0":' init the entry number of "GEnie" in the dialing dir
' if this stays zero we didn't find the entry
temp$=""
nent$=SET$("STORM","Dialer","Entries"):' find # of entries in dial dir
FAST ON
FOR x = 1 to val(nent$)
temp$=SET$("DIALDIR",str$(x),"Name")
IF temp$ = "GEnie" THEN entry$=str$(x)
NEXT x
FAST OFF
IF entry$="0" THEN
TOPW:PRINT "Error: No entry found for GEnie!";:PRINT chr$(7)
GOTO EXIT
ENDIF
'
' get our genie password and account. If file doesn't exist we'll error off
OPEN "r",#1,"GENIE.PWD":' it'd be nice to do a fsfirst() here but oh well
INPUT #1,acct$
INPUT #1,pwd$
CLOSE #1
'
' set up some known settings for GEnie then read STORM.INI for specifics
' about the modem setup
DUPLEX HALF
BAUD 2400
SBITS 1
PARITY NONE
prefix$=SET$("STORM","Modem","Prefix"):' dialing prefix
con1$=SET$("STORM","Modem","Connect1")
con2$=SET$("STORM","Modem","Connect2")
fail1$=SET$("STORM","Modem","Fail1")
fail2$=SET$("STORM","Modem","Fail2")
timeout=SET("STORM","Modem","Timeout"):' get dialing timeout value
IF con1$="" THEN con1$="XXXXXXXXXXXXX":'just in case these are empty
IF con2$="" THEN con2$="XXXXXXXXXXXXX":'if they are empty, wait() will
IF fail1$="" THEN fail1$="XXXXXXXXXXX":'return too quickly when we use it
if fail2$="" THEN fail2$="XXXXXXXXXXX":'later in this routine
'
TOPW 1:SEND prefix$+set$("DIALDIR",entry$,"#"):' dial the GEnie number
WAIT timeout,con1$,con2$,fail1$,fail2$
IF WAIT(0)=3 OR WAIT(0)=4 THEN
TOPW:PRINT "Error: GEnie didn't answer";chr$(7):GOTO EXIT
ENDIF
IF CARRIER=FALSE THEN
TOPW:PRINT "Error: No carrier. (didn't answer?)";chr$(7):GOTO EXIT
ENDIF
'
SEND "HHH";
WAIT 20,"U#=":REM Wait 20 seconds for prompt
IF WAIT(0)=0 THEN TOPW :PRINT "Logon Failed";:PRINT chr$(7):GOTO EXIT
DUPLEX FULL :'so password doesn't appear on screen
SEND acct$+","+pwd$+","+mid$(c$(dest),2):' strip "M" off dest$
' The pause ensures that the password is sent before duplex is switched back
PAUSE 2:DUPLEX HALF
WAIT 30,"continue?":' welcome menu prompt
SEND "":' skip it. We're now moving to our destination
'
RETURN
'
' == DATA AREA ==
DATA 5
DATA " Library ","M475;3"
DATA " BB ","M475;1"
DATA " RTC ","M475;2"
DATA " Mail ","M200"
DATA " <cancel>",""